package com.lcredu.service;

import com.lcredu.entity.Furn;
import com.lcredu.entity.Page;

import java.util.List;

/**
 * @author 黎长容
 * @date 2025-07-06 11:13
 */
public interface FurnService {
    public List<Furn> getFurns();

    //添加商品
    int add(Furn furn);

    /**
     * @param id 要删除商品的id
     * @return
     */
    int deleteById(int id);

    /**
     * 根据id查询商品
     *
     * @param furnId
     * @return
     */
    Furn getFurn(int furnId);

    /**
     * 修改家居
     *
     * @param furn
     * @return
     */
    Boolean updateFurn(Furn furn);

    /**
     * 黎长容知识9
     * 这里是完成原生分页
     *  完成步骤
     *      1. 创建数据模型---Page(pageNum,pageSize,pageTotalCount,totalRow,items,url)
     *      2. 这里的主要数据有pageNum,pageSize,pageTotalCount,totalRow,items
     *      3. 其中的pageNum和pageSize由前端传入
     *      4. totalRow : 共有多少条记录 DB可获取
     *      5. items : 表示当前页要显示的数据 DB可获取 涉及一点小算法
     *      int begin = (pageNum - 1) * pageSize;
     *         //pageNum = 1   pageSize = 3   => begin = 0    从第1条记录开始取
     *         //pageNum = 3   pageSize = 2   => begin = 4    从第5条记录开始取
     *         //有个坑
     *         List<Furn> pageItems = furnDAO.getItems(begin, pageSize);
     *         page.setItems(pageItems);
     *      6. pageTotalCount : 表示该分多少页,通过计算得到?怎么得到?先获取多少行,再根据取模运算,可以得出可以分出多少页
     *      int pageTotalCount = totalRow / pageSize;
     *         if (totalRow % pageSize > 0) {
     *             pageTotalCount += 1;
     *         }
     *         page.setPageTotalCount(pageTotalCount);
     * @param pageNum  传入的第几页
     * @param pageSize 要查看几条数据
     * @return Page对象
     */
    Page<Furn> getPage(int pageNum, int pageSize);

    Page<Furn> getPageByName(int pageNum, int pageSize, String name);
}
